$(function () {
    // 1.全选 全不选功能模块
    // 就是把全选按钮 (checkall) 的状态赋值给三个小的按钮 (j-checkbox) 就可以了
    // 事件可以使用change
    $(".checkall").change(function () {
        // console.log($(this).prop("checked"));
        $(".j-checkbox,.checkall").prop("checked", $(this).prop("checked"));
        if ($(this).prop("checked")) {
            // 让所有的商品添加 check-cart-item 类名
            $(".cart-item").addClass("check-cart-item");
        } else {
            // 让所有的商品移除 check-cart-item 类名
            $(".cart-item").removeClass("check-cart-item");
        };
        getSum();
    })
    // 2.如果小复选框被选中的个数等于3 就应该把把全选按钮选上，否则全选按钮不选。
    $(".j-checkbox").change(function () {
        // if (被选中的小的复选框的个数 === 3) {
        //     就要选中全选按钮
        // } else {
        //     就不要选中全选按钮
        // }
        // console.log($(".j-checkbox:checked").length);
        // $(".j-checkbox").length) 所有小复选框的个数
        // $(".j-checkbox:checked").length 被选中复选框的个数
        if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
            $(".checkall").prop("checked", true);
        } else {
            $(".checkall").prop("checked", false);
        };
        if ($(this).prop("checked")) {
            // 让当前的商品添加 check-cart-item 类名
            $(this).parents(".cart-item").addClass("check-cart-item");
        } else {
            // 让当前的商品移除 check-cart-item 类名
            $(this).parents(".cart-item").removeClass("check-cart-item");
        }
        getSum();
    });

    // $(".decrement").click(function () {

    //     var clicktype = $(this).data('value');
    //     var n = $(this).siblings(".itxt").val();
    //     if (clicktype == "jia") {//当前点击的是加号
    //         n++;
    //     }
    //     else {
    //         n--;
    //         n = n <= 1 ? 1 : n;
    //     }
    //     $(this).siblings(".itxt").val(n);
    //     // 4.1 购物车小计
    //     // 根据文本框的值 乘以 当前商品的价格 就是商品的小计
    //     // var p = $(this).parent().parent().siblings(".p-price").html().substr(1);
    //     var p = $(this).parents(".p-num").siblings(".p-price").text().substr(1);
    //     console.log(p);
    //     $(this).parents(".p-num").siblings(".p-sum").html("￥" + (n * p).toFixed(2));
    //     getSum();
    // });

    // 3. 增减商品数量模块 首先声明一个变量，当我们点击+号 (increment),就让这个值++ 然后赋值给文本框
    $(".increment").click(function () {
        // 得到当前兄弟文本框的值
        var n = $(this).siblings(".itxt").val();
        console.log(n);
        n++;
        $(this).siblings(".itxt").val(n); //11
        // 3.1 购物车小计
        // 根据文本框的值 乘以 当前商品的价格 就是商品的小计
        // var p = $(this).parent().parent().siblings(".p-price").text().substr(1);
        var p = $(this).parents(".p-num").siblings(".p-price").text().substr(1);
        console.log(p);
        // toFixed(2)  可以让我们保留两位小数
        var result = (parseFloat(n) * parseFloat(p)).toFixed(2);
        $(this).parents(".p-num").siblings(".p-sum").text("￥" + result);
        getSum();
    })

    // 4. 增减商品数量模块 首先声明一个变量，当我们点击 - 号(decrement), 就让这个值-- 然后赋值给文本框 注意值最小为1
    $(".decrement").click(function () {
        var n = $(this).siblings(".itxt").val();
        n--;
        n = n <= 1 ? 1 : n;
        $(this).siblings(".itxt").val(n);
        // 4.1 购物车小计
        // 根据文本框的值 乘以 当前商品的价格 就是商品的小计
        // var p = $(this).parent().parent().siblings(".p-price").html().substr(1);
        var p = $(this).parents(".p-num").siblings(".p-price").text().substr(1);
        console.log(p);
        $(this).parents(".p-num").siblings(".p-sum").html("￥" + (n * p).toFixed(2));
        getSum();
    });
    // 5. 客户修改文本框的值 计算 小计模块
    $(".itxt").change(function () {
        // 先得到当前文本框的值  乘以商品的单价
        var n = $(this).val();

    
        n = n <= 0 ? 1 : n;
        var p = $(this).parents(".p-num").siblings(".p-price").html().substr(1)
        $(this).parents(".p-num").siblings(".p-sum").html("￥" + (n * p).toFixed(2));
        getSum();
    });
    // 6. 计算总计和总额模块
    getSum();  // 函数首先自己要调用一次 然后 + - 里面也需要调用
    function getSum() {
        var i = 0;
        var count = 0;  // 计算总件数
        var money = 0; // 计算总价钱
        $(".j-checkbox:checked").each(function () {
            count += parseInt($(this).parent(".p-checkbox").siblings(".p-num").find('.itxt').val());
            money += parseFloat($(this).parent(".p-checkbox").siblings(".p-sum").text().substr(1));
        });
        $(".amount-sum em").text(count);
        // if (money >= 200) {
        //     i = parseInt(money / 200)
        //     money -= i * 20
        // }
        money = money >= 200 ? money - parseInt(money / 200) * 20 : money;
        $(".price-sum em").text("￥" + money.toFixed(2))
    };
    // 7. 删除商品模块
    // (1) 商品后面的删除按钮
    $(".p-action a").click(function () {
        $(this).parents(".cart-item").remove();
        if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
            $(".checkall").prop("checked", true);
        }
        if ($(".j-checkbox:checked").length === 0) {
            $(".checkall").prop("checked", false);
            $(".checkall").attr("disabled", true);
        }
        getSum(); // 删除商品必须调用一次 重新计算
    });
    // (2) 删除选中的商品
    $(".remove-batch").click(function () {
        // 删除的是小的复选框选中的商品
        $(".j-checkbox:checked").parents(".cart-item").remove();
        getSum(); // 删除商品必须调用一次 重新计算
        if ($(".j-checkbox:checked").length == 0) {
            $(".checkall").prop("checked", false);
            $(".checkall").prop("disabled", true);
        }

        // if ($(".j-checkbox").length == 0) {
        //     $(".checkall").prop("disabled", true);
        // }
    });
    // (3) 清空购物车 删除全部商品
    $(".clear-all").click(function () {
        $(".cart-item").remove();
        getSum();  // 删除商品必须调用一次 重新计算
        if ($(".j-checkbox:checked").length === 0) {
            $(".checkall").prop("checked", false);
            $(".checkall").attr("disabled", true);
        }

    })
})
